package br.com.caelum.notasfiscais.mb;

import java.io.Serializable;

import javax.enterprise.event.Event;
import javax.enterprise.inject.Model;
import javax.inject.Inject;

import br.com.caelum.notasfiscais.dao.UsuarioDao;
import br.com.caelum.notasfiscais.modelo.Usuario;

@Model
public class LoginBean implements Serializable {
	
	@Inject
	private Usuario usuario;
	
	@Inject
	private UsuarioDao usuarioDao;
	
	@Inject 
	private UsuarioLogadoBean usuarioLogado;
	
	@Inject 
	Event<Usuario> eventoLogin;
	
	public Usuario getUsuario() {
		return usuario;
	}

	public void setUsuario(Usuario usuario) {
		this.usuario = usuario;
	}

	public String efetuaLogin(){
		
		boolean loginValido = usuarioDao.existe(this.usuario);
		
		if (loginValido) {
			usuarioLogado.logar(usuario);
			eventoLogin.fire(usuario);
			return "produto?faces-redirect=true";
		} else {
			usuarioLogado.deslogar();
			this.usuario = new Usuario();
			return "login?faces-redirect=true";
		}
	}
	
	public  String logout() {
		usuarioLogado.deslogar();
		return "login?faces-redirect=true";
	}
	
	public String redirecionaProduto() {
		return "produto?faces-redirect=true";
	}
	
	public String redirecionaUsuario() {
		return "usuario?faces-redirect=true";
	}
}
